腾讯云 MQTT

大象笔记 > 标签 > 腾讯云 MQTT

MQTT QoS 服务质量等级

在查看腾讯云 MQTT 相关接口时,看到一个参数 Qos: 服务质量等级,取值为0或1 什么是 QoS Quality of Service,即服务质量。 看上去比较晦涩,找了本专门介绍 MQTT 的书《Hands-On Internet of Things with MQTT》才理解了。 QoS 给终端带来了一项重要的能力,即,可以接收自己离线时,对方发送的消息。例如,Facebook Messager 也是基于 MQTT 实现的消息机制。所以,本质上 MQTT 还是一个消息队列,MQ 已暴露了一切。。。 MQTT QoS 等级 MQTT 设计了 3 个 QoS 等级。 QoS 0:F ...

阅读全文...

微信小程序支付前,使用 MQTT 检测设备是否在线

需求场景 例如,用户要出停车场,进行扫码支付,但是需要在支付之前判断一下起杆设备是否在线。 如果不在线需要给出提示,防止收了钱,但是没有起杆。 TODO [x] 腾讯云 MQTT 接口 [x] golang api [x] controller 更名为 mqtt.go, 把 mqtt 相关的操作都放在这个 controller 里,方便共用一些配置 [x] 封装 DescribeDevice。参数为 deviceId,获取 device,从而得到设备名,然后 mqtt 查询在线状态 [x] 线上测试 [x] 小程序端:预支付这里调用了两个 http 微信接口,可能等待时间有点长,导致用户点两 ...

阅读全文...

单片机 4G 模块进行 MQTT 通信的抓包方法

设备调试中发现 4G 模块进行 MQTT 通信总是出问题,即 QoS 为 1 的情况下,总是收到重复的 Publish Message。即便回复了正确的 Pub ACK 包,也依旧会收到重复的 Publish Message。但是 Wifi 模块下就没有这个问题。 之前 Wifi 模块是通过笔记本 Wifi 共享,在笔记本上使用 Wireshark 进行抓包调试的。但是 4G 模块由于是直连腾讯云 MQTT 服务器,所以没法使用这种方案调试。后来想了个方案就是在自己的公网服务器上设置个转发服务,本地设备通过这个转发服务跟腾讯云 MQTT 服务器通信。这样就能在服务器上对数据包用 tcpdump ...

阅读全文...

腾讯云 MQTT 由服务器生成长期的设备密码

密码过期问题 登录腾讯云管理后台,物联网通信,设备调试。可以看到提示: 以下MQTT三元组仅用于调试,将于2022-09-05 12:00:00后失效,正式设备请按算法生成 Client ID xxx MQTT Username yyy MQTT Password zzz 由于嵌入式硬件不方便接入腾讯云的 MQTT SDK,所以改成硬件从服务器获取 Username 和 Password。 然后将密码过期时间设置成 50 年,因为硬件设备的寿命大概也不会超过 10 年。虽然不严谨,但是满足目前的需求场景。 Client ID 格式 ${productId}${deviceName} ...

阅读全文...